{"version":3,"sources":["angularjs-toast.js"],"names":["$run","$toastContainerDirective","$toastMessageDirective","$toastProvider","getUniqId","s4","Math","random","toString","substring","Date","getTime","$templateCache","containerHTML","messageHTML","put","create","defaultOptions","destroy","options","toastMessages","containerClass","defaultToastClass","timeout","dismissible","maxToast","position","insertFromTop","index","splice","args","json","message","toastClass","className","Error","id","length","shift","pop","unshift","push","configure","c","angular","extend","$get","toast","replace","restrict","templateUrl","scope","compile","$timeout","data","link","timeoutPromise","indexOf","close","$on","cancel","$inject","module","run","provider","directive","call"],"mappings":"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","sourcesContent":["(function() {\n 'use strict';\n var $run, $toastContainerDirective, $toastMessageDirective, $toastProvider, getUniqId;\n\n getUniqId = function() {\n var s4;\n s4 = function() {\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n };\n return `${new Date().getTime()}-${s4()}-${s4()}-${s4()}`;\n };\n\n $run = function($templateCache) {\n var containerHTML, messageHTML;\n containerHTML = '
' + ' ' + '
';\n messageHTML = '
  • ' + '
    ' + ' ' + ' ×' + '
    ' + '
  • ';\n $templateCache.put('angularjs-toast/container.html', containerHTML);\n $templateCache.put('angularjs-toast/message.html', messageHTML);\n };\n\n $toastProvider = function() {\n var create, defaultOptions, destroy, options, toastMessages;\n defaultOptions = {\n containerClass: '',\n defaultToastClass: 'alert-success',\n timeout: 5 * 1000,\n dismissible: true,\n maxToast: 7,\n position: 'right',\n insertFromTop: true\n };\n options = defaultOptions;\n toastMessages = [];\n destroy = function(index) {\n toastMessages.splice(index, 1);\n };\n create = function(args) {\n var dismissible, json, message, timeout, toastClass;\n // user options\n message = typeof args === 'string' ? args : args.message;\n timeout = args.timeout || options.timeout;\n dismissible = args.dismissible !== void 0 ? args.dismissible : options.dismissible;\n toastClass = args.className || options.defaultToastClass;\n if (!message) {\n throw new Error(\"Toast message is required...\");\n }\n // append inputs to json variable\n // this will be pushed to the ->scope.$toastMessages array\n json = {\n message: message,\n id: getUniqId(),\n toastClass: toastClass,\n dismissible: dismissible,\n timeout: timeout\n };\n // remove last/ first element from ->scope.$toastMessages when the maxlength is reached\n if (toastMessages.length === options.maxToast) {\n if (!options.insertFromTop) {\n toastMessages.shift();\n } else {\n toastMessages.pop();\n }\n }\n // push elements to array\n if (options.insertFromTop) {\n toastMessages.unshift(json);\n } else {\n toastMessages.push(json);\n }\n };\n return {\n // setNotificationTimer(json, timeout)\n configure: function(c) {\n options = angular.extend({}, defaultOptions, c);\n },\n $get: function() {\n return {\n options: options,\n toastMessages: toastMessages,\n create: create,\n destroy: destroy\n };\n }\n };\n };\n\n $toastContainerDirective = function(toast) {\n return {\n replace: true,\n restrict: 'EA',\n templateUrl: 'angularjs-toast/container.html',\n scope: {},\n compile: function() {\n var options;\n options = toast.options;\n return function(scope) {\n scope.toastMessages = toast.toastMessages;\n scope.position = options.position;\n scope.containerClass = options.containerClass;\n };\n }\n };\n };\n\n $toastMessageDirective = function($timeout, toast) {\n return {\n replace: true,\n restrict: 'E',\n templateUrl: 'angularjs-toast/message.html',\n scope: {\n data: '='\n },\n link: function(scope) {\n var data, destroy, options, timeout, timeoutPromise, toastMessages;\n data = scope.data;\n options = toast.options;\n timeout = data.timeout || options.timeout;\n toastMessages = toast.toastMessages;\n destroy = function() {\n var index;\n index = toastMessages.indexOf(data);\n toast.destroy(index);\n };\n scope.close = destroy;\n timeoutPromise = $timeout(function() {\n destroy();\n }, timeout);\n scope.$on('$destroy', function() {\n $timeout.cancel(timeoutPromise);\n });\n }\n };\n };\n\n $run.$inject = ['$templateCache'];\n\n $toastProvider.$inject = [];\n\n $toastContainerDirective.$inject = ['toast'];\n\n $toastMessageDirective.$inject = ['$timeout', 'toast'];\n\n angular.module('angularjsToast', ['ngSanitize', 'ngAnimate']).run($run).provider('toast', $toastProvider).directive('toast', $toastContainerDirective).directive('toastMessage', $toastMessageDirective);\n\n}).call(this);\n"],"file":"angularjs-toast.js"}